/* 
一般都是服务器给客户端设置cookie作为用户登录的标识（现在开发主流使用token） 但是cookie也需要了解
- 登录后，服务器返回登录凭证
- 客户端获取服务器设置的cookie，并且做保存（一般会设置过期时间）
- 在同一个作用于下进行访问（域名/路径），会自动携带cookie
- 服务器可以通过客户端携带的cookie，验证用户的身份

*/

/* 
1. 演示在koa中操作cookie 

userRouter.get('/login' ,(ctx, next)=>{
  ctx.cookies.set("slogan", "ikun", {
    maxAge:1000 * 1000 // 单位ms
  })
  ctx.body = "cookie设置"
})


userRouter.get('/list' ,(ctx, next)=>{
  const res = ctx.cookies.get("slogan")
  if(res === 'ikun'){
    ctx.body = "user list"
  }else{
    ctx.body = "无权限"
  }
})

*/

/* 
2. cookie + session 登录凭证  session进行加密，避免cookie暴露原文

`pnpm i koa-session`
const session = KoaSession({
  key:"sessionId", // cookie的key
  signed:true , // 是否使用签名认证，防止数据篡改
  maxAge:1000*1000 , // 过期时间
},app)
app.keys = ['aaa','bb'] // 加入keys 也是为了防止数据篡改
app.use(session)

userRouter.get('/login' ,(ctx, next)=>{
  ctx.session.set("slogan", "ikun", {
    maxAge:1000 * 1000 // 单位ms
  })
  ctx.body = "cookie设置"
})

userRouter.get('/list' ,(ctx, next)=>{
  const res = ctx.session.get("slogan")
  if(res === 'ikun'){
    ctx.body = "user list"
  }else{
    ctx.body = "无权限"
  }
})


*/
